package ar.pegasus.clasificador.vo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import ar.pegasus.clasificador.entidades.aplicacion.AplicacionClasificador;
import ar.pegasus.framework.entidades.core.Modulo;

public class AplicacionClasificadorVO implements Comparable<AplicacionClasificadorVO>, Serializable {
	private static final long serialVersionUID = -7056425118534191510L;

	private int idAplicacion;
	private String descripcion;
	private List<Modulo> modulos;

	public AplicacionClasificadorVO(AplicacionClasificador aplicacionClasificador) {
		super();
		idAplicacion = aplicacionClasificador.getIdAplicacion() ;
		descripcion = aplicacionClasificador.getDescripcion() ;
		modulos = aplicacionClasificador.getModulos() ;
	}

	public int getIdAplicacion() {
		return idAplicacion;
	}

	public void setIdAplicacion(int idAplicacion) {
		this.idAplicacion = idAplicacion;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public List<Modulo> getModulos() {
		return modulos;
	}

	/**
	 * Retorna los m�dulos ordenados por el campo orden
	 * @return
	 */
	public List<Modulo> getModulosOrdenados() {
		List<Modulo> modulosOrdenados = new ArrayList<Modulo>(modulos);
		Collections.sort(modulosOrdenados) ;
		return modulosOrdenados;
	}

	public void setModulos(List<Modulo> modulos) {
		this.modulos = modulos;
	}

	@Override
	public String toString() {
		return getDescripcion();
	}

	public int compareTo(AplicacionClasificadorVO a) {
		return this.getDescripcion().compareToIgnoreCase(a.getDescripcion());
	}

}